Ir para o conteúdo

App TEF - Serviços Publicados

Definições

Adquirentes

03 - Cielo

04 - Global

06 - Stone

07 - Adiq

08 - Pagseguro

11 - Acqio

Vias de Impressão

0 - Segunda via

1 - Primeira via

2 - Todas as vias

Tipos de Estabelecimento

0 - Estabelecimento de Rede

1 - Estabelecimento Principal

2 - Substabelecimento

Tipos de Pagamento

1 - Crédito à Vista

4 - Crédito Parcelado Loja

5 - Crédito Parcelado Emissor

6 - Débito à Vista

8 - Pré-Autorização

9 - Confirmação de Pré-Autorização

Serviços

A API de Pagamento consiste em um conjunto de serviços disponibilizados para a realização de operações financeiras.

package://tef/services.wmlsc

tef.connect

Serviço que inicia previamente a comunicação do PhAST para a realização de transções.

Por padrão, a comunicação é iniciada durante a execução da transação e finalizada ao termino da transação. Utilizando este serviço, é possível iniciar a comunicação antes da execução da transação e manter a mesma conexão para a execução de várias transações. Importante: Quando o serviço tef.connect for executado, a comunicação só será finalizada com a execução do serviço tef.disconnect.

tef.disconnect

Serviço para a finalização da comunicação do PhAST. Deve ser chamado após o tef.connect, quando a conexão não for mais necessária.

tef.refund

Serviço de Estorno, provido pelo App TEF. Este serviço recebe como entrada um PhStruct com a definição TefServices#REFUND_REQUEST_DEFINITION(), contendo atributos de configuração e retorna um PhStruct com a definição TefServices#REFUND_RESPONSE_DEFINITION(), contendo informações sobre a execução do estorno.

  • Entrada:
Campo Tipo Descrição Comportamento padrão
value string Valor da transação Capturar
date date Data em que foi realizada a transação Capturar
nsu string NSU do autorizador da transação Capturar
print boolean Indica se o TEF deve imprimir o comprovante ao final da transação Não imprimir
additionalData string Dados que o app pode enviar para o PhAST Server na requisição da transação. Tamanho máximo: 50 bytes. "" (vazio)
include.acquires stringList Indica quais adquirentes serão listadas Todos
include.ecs stringList Indica quais estabelecimentos serão listados Todos
exclude.acquires stringList Indica quais adquirentes serão excluidas da listagem Nenhum
exclude.ecs stringList Indica quais estabelecimentos serão excluidos da listagem Nenhum
  • Saída:
Campo Tipo Descrição
result.error string Em caso de erro, contém o código do erro ocorrido e em caso de sucesso, string vazia ("").
result.message string Em caso de erro, contém a mensagem associada ao erro ocorrido e em caso de sucesso, string vazia ("").
network.name string Nome da rede (ou facilitador) que o terminal está cadastrado
acquire.id string Código da adquirente
acquire.name string Nome da adquirente
ec.id string Código do estabelecimento
ec.name string Nome do estabelecimento
ec.type byte Tipo do estabelecimento (Ver seção Tipos de Estabelecimento)
ec.nationalId string CPF ou CNPJ do lojista
card.type string Bandeira do cartão
card.brand string Bandeira do cartão
card.pan string PAN do cartão
card.holder string Nome do portador do cartão
card.exp string Data de expiração do cartão
card.service word Código de serviço do cartão
card.appLabel string Label da aplicação do cartão
refund.value string Valor do pagamento
refund.datetime datetime Horario do pagamento
refund.nsu.client dword NSU (Número Sequencial Único) do terminal
refund.nsu.server dword NSU do servidor
refund.nsu.acquire string NSU da adquirente
refund.nsu.auth dword NSU do autorizador
refund.vias longStringList Lista com as vias do comprovante do estabelecimento e cliente do cancelamento
refund.origional_payment.value string Valor do pagamento
refund.origional_payment.parcells string Quantidade de parcelas
refund.origional_payment.datetime datetime Horário do pagamento
refund.origional_payment.nsu.server dword NSU do servidor
refund.origional_payment.nsu.acquire string NSU da adquirente
refund.origional_payment.nsu.auth dword NSU do autorizador

Exemplo:

use url Service     "package://phast#applet/service.wmlsc";
use url TefServices "package://tef/services.wmlsc";

var request  = PhStruct.create(TefServices#PAYMENT_REQUEST_DEFINITION());
var response = Service#execute("tef.refund", [request]);

if (PhStruct.get(response, "result.error") == "" && PhStruct.get(response, "refund.value") > 0)
{
  Dialogs.alert("Estorno realizado com sucesso!");
}
else
{
  Dialogs.alert("Estorno nao realizado!");
}

Saida:

Transação realizada com sucesso!

tef.payment

Serviço de Pagamento, provido pelo App TEF, sem escolha prévia da operação financeira a ser executada. Este serviço recebe como entrada um PhStruct com a definição TefServices#PAYMENT_REQUEST_DEFINITION(), contendo atributos de configuração e retorna um PhStruct com a definição TefServices#PAYMENT_RESPONSE_DEFINITION(), contendo informações sobre a execução do pagamento.

Caso algum campo do PhStruct de entrada não seja preenchido, será assumido seu Comportamento Padrão. Por exemplo, caso o campo valor não seja definido na estrutura, será exibido um input para que o operador digite o valor da transação.

  • Entrada:
Campo Tipo Descrição Comportamento padrão
value string Valor da transação Capturar
cashback string Valor da troco Capturar
parcells string Número de parcelas Capturar
print boolean Indica se o TEF deve imprimir o comprovante ao final da transação Não imprimir
type byte Tipo do pagamento (Ver seção Tipos de Pagamento) Capturar
additionalData string Dados que o app pode enviar para o PhAST Server na requisição da transação. Tamanho máximo: 50 bytes. "" (vazio)
include.trnsTypes byteList Indica os tipos de pagamentos que serão listados Todos
include.acquires stringList Indica quais adquirentes serão listadas Todos
include.ecs stringList Indica quais estabelecimentos serão listados Todos
exclude.trnsTypes byteList Indica os tipos de pagamentos que serão excluidos da listagem Nenhum
exclude.acquires stringList Indica quais adquirentes serão excluidas da listagem Nenhum
exclude.ecs stringList Indica quais estabelecimentos serão excluidos da listagem Nenhum
  • Saída:
Campo Tipo Descrição
result.error string Em caso de erro, contém o código do erro ocorrido e em caso de sucesso, string vazia ("").
result.message string Em caso de erro, contém a mensagem associada ao erro ocorrido e em caso de sucesso, string vazia ("").
network.name string Nome da rede (ou facilitador) que o terminal está cadastrado
acquire.id string Código da adquirente
acquire.name string Nome da adquirente
ec.id string Código do estabelecimento
ec.name string Nome do estabelecimento
ec.type byte Tipo do estabelecimento
ec.nationalId string CPNJ do estabelicimento
product.id byte Código do produto
product.name string Nome do produto
product.withInterest string Label da transação com juros
product.withoutInterest string Label da transação sem juros
product.aid string Identificador da aplicação do cartão
product.arqc string Criptograma da requisição de autorização
product.imgName string Nome da imagem da bandeira do cartão (Utilizado no comprovante gráfico)
card.type string Bandeira do cartão
card.brand string Bandeira do cartão
card.pan string PAN do cartão
card.holder string Titular do cartão
card.exp string Data de validade do cartão
card.service dword Identificador do serviço (Crédito, Crédito Parcelado, Débito, etc)
card.appLabel string Label da aplicação do cartão
payment.type byte Tipo do pagamento
payment.value string Valor do pagamento
payment.cashback string Valor do troco
payment.parcells string Quantidade de parcelas
payment.datetime datetime Horario do pagamento
payment.balance string Saldo do cartão (Em caso de voucher)
payment.dtPreDated string Data do débito pré-datado
payment.guarantee string Em caso de débito pré-datado, indica se é com ou sem garantia
payment.acquireId string Nome do adquirente
payment.transactionName string Nome da transação
payment.issueName string Nome do emissor
payment.nsu.client dword NSU (Número Sequencial Único) do terminal
payment.nsu.server dword NSU do servidor
payment.nsu.acquire string NSU da adquirente
payment.nsu.auth dword NSU do autorizador
payment.vias longStringList Lista com as vias do comprovante do estabelecimento e cliente do pagamento
payment.tvr byte Valor do TVR (Terminal Verification Result)
payment.cvm byte Resultado do CVM (Cardholder Verification Method)
payment.tlv1 string TLV do 1st Generate AC
payment.tlv2 string TLV do 2nd Generate AC
payment.tlvS string TLV do servidor
payment.responseCode string Código de resposta do servidor

Exemplo:

use url Service     "package://phast#applet/service.wmlsc";
use url TefServices "package://tef/services.wmlsc";

var request  = PhStruct.create(TefServices#PAYMENT_REQUEST_DEFINITION());
Service#execute("tef.connect", []);

PhStruct.set(request, "value", 5000); //R$ 50,00
PhStruct.set(request, "print", true); //Imprime o comprovante ao final da transação

var response = Service#execute("tef.payment", [request]);

if (PhStruct.get(response, "result.error") == "" && PhStruct.get(response, "payment.value") > 0)
{
  Dialogs.alert("Pagamento realizado com sucesso!");
}
else
{
  Dialogs.alert("Pagamento não realizado!");
}

Service#execute("tef.disconnect", []);

Saida:

Transação realizada com sucesso!

tef.print.last

Serviço de Impressão da última transação realizada.

  • Entrada:

  • reprint (booleano): Indicação se a impressão a ser realizada é ou não reimpressão

  • via (inteiro): Indicação das vias do comprovante que devem ser impressas

Exemplo:

use url Service     "package://phast#applet/service.wmlsc";
use url TefServices "package://tef/services.wmlsc";

var request  = PhStruct.create(TefServices#PAYMENT_REQUEST_DEFINITION());
var response = Service#execute("tef.payment", [request]);

if (PhStruct.get(response, "result.error") == "" && PhStruct.get(response, "payment.value") > 0)
{
  Dialogs.alert("Imprimindo...");
  Service#execute("tef.print.last", [false, 2]);
}
else
{
  Dialogs.alert("Pagamento não realizado!");
}

Saida:

Imprimindo...

tef.print.list

Serviço para impressão de uma lista de transações

  • Entrada:

  • nsuList (PhList): Lista com os NSUs das transações que serão impressas.

  • reprint (booleano): Indicação se a impressão a ser realizada é ou não reimpressão
  • via (inteiro): Indicação das vias do comprovante que devem ser impressas

Exemplo:

use url Service     "package://phast#applet/service.wmlsc";
use url TefServices "package://tef/services.wmlsc";

var request  = PhStruct.create(TefServices#PAYMENT_REQUEST_DEFINITION());
var nsuList  = [];

for(var i = 0; i < 3; i++)
{
  var response = Service#execute("tef.payment", [request]);

  if (PhStruct.get(response, "result.error") == "" && PhStruct.get(response, "payment.value") > 0)
  {
    PhList.add(nsuList, PhType.getValue(PhStruct.get(response, "payment.nsu.server"), 0));
  }
  else
  {
    Dialogs.alert("Pagamento não realizado!");
  }
}

if (PhList.count(nsuList) > 0)
{
  Dialogs.alert("Imprimindo comprovantes...");
  Service#execute("tef.print.list", [nsuList, false, 2]);
}

Saida:

Imprimindo comprovantes...